LLVM в GPU компиляторах/Стандарты С++ (часть 2)

Описание к видео LLVM в GPU компиляторах/Стандарты С++ (часть 2)

Во второй части выпуска «Битовых масок» Константин Владимиров, инженер с 20-летним опытом разработки на C/C++, расскажет об особенностях разработки компиляторов для GPU. А также порассуждает о новых полезных вещах в стандартах C++ и объяснит, почему разработчикам компиляторов так важно знать стандарт.

Чем отличаются CPU и GPU? В чем сложность гетерогенного программирования? Почему MLIR не применяется в графических компиляторах? Как использовать LLVM для GPU-компиляторов, несмотря на его недостатки для подобных архитектур? Когда мешает SSA? Почему наличие undefined behaviour — это хорошо? Что может быть включено в C++26? Ответы на эти и другие вопросы вы узнаете из нового эпизода.

Первую часть выпуска c Константином, посвященную преимуществам и недостаткам компиляторов GCC и LLVM, а также современным подходам к аллокации регистров, смотрите по ссылке:    • LLVM и GCC / Register allocation / IT...  

📍 Канал Константина:    / @tilir  

✅ Подписывайтесь на Telegram-канал подкаста: https://t.me/+bx50QfUlw4pkZDEy

🔹 Стань частью команды YADRO! https://careers.yadro.com

🎧 Слушать «Битовые маски» на других платформах:
Яндекс.Музыка: https://music.yandex.com/album/26508178
Apple Podcasts: https://podcasts.apple.com/ru/podcast...
Все площадки: https://engineer.yadro.com/podcasts/c...

00:00:00 — Тизер первой части
00:00:29 — Отличия CPU и GPU
00:02:03 — Особенности компиляторов для GPU
00:04:01 — Сложности применения LLVM для GPU-компиляторов
00:06:13 — Spill’ы в шейдерах 
00:10:15 — Сложность гетерогенного программирования
00:11:18 — Проблемы компиляторных инженеров
00:13:27 — Использование LLVM в GPU-компиляторах
00:18:56 — MLIR и возможность его применения 
00:21:13 — Особенности языков для GPU
00:26:07 — Backend в GPU-компиляторах
00:26:41 — Интересный баг
00:32:26 — Стоит ли писать на ассемблере
00:33:47 — Почему важно знать стандарты C++
00:36:10 — Ошибка в Linux
00:38:55 — Польза undefined behaviour
00:45:33 — Новшества в C++23 и C++26
00:55:37 — Участие в разработке стандартов C++
01:00:59 — Заключение

#gpu #llvm #cpp #opencl

Комментарии

Информация по комментариям в разработке